Java方法参数是基本类型和引用类型的区别理解

您所在的位置:网站首页 Java中的数据类型分为两种,分别是 和 Java方法参数是基本类型和引用类型的区别理解

Java方法参数是基本类型和引用类型的区别理解

2024-07-11 00:47| 来源: 网络整理| 查看: 265

方法参数是基本类型时,传递的是值。 方法参数是引用类型时,传递的是内存地址值

当参数是基本类型时,在调用方法时将值传递到方法中,运行方法,运行结束方法退出,对原本main中定义的变量没有任何操作(方法中没有return)。即:此时只跟栈有关系,方法执行完之后(方法中没有return),会弹栈。

当参数是引用类型时,比如:定义数组时,在堆内存中存储了数组的数据,返回这组数据的地址给了数组名,然后在调用方法时,传递的也是这个地址。在方法中,同样也是根据这个地址找到数组的信息,然后改变了这个数据的,所以之后main方法输出时,输出的是改变了之后的数组。即:此时跟栈和堆有关系,栈可以弹栈,堆内存不能弹出。

也就是说 ,当形式参数是基本类型时,方法传的只是值,实际上main 里的实际参数和外部方法里的形式参数是不同的两个东西,如果方法不返回值,change里不管怎么改变,与main无关。 而当形式参数是引用类型时,比如:形式参数是数组时,两个方法通过同一个地址,使用的是同一个堆内存里的数组,是同一个东西,所以外部方法里面改变了这个数组之后,main再调用也是改变之后的数组。

一,基本数据类型

8种,byte,short,long,int char,boolean,double,float

二,引用数据类型

3种,类,接口,数组

三,栗子 基本数据类型作为实参传递形参时候,对形参的值改变不影响实参,而引用数据类型作为实参传递参数时候,对形参值改变会影响到实参的值。

class Change{ public static void main(String[]args){ int a =1, b=2; swp(a,b); //引用数据类型 int[]arr=(1,2,3,4,5,6); swap(arr,0,1); System.out.println(arr[0]+" "+arr[1]); System.out.println("a="+a+" "+"b="+b);} //基本数据类型 public static viod swap(int x,int y){ int temp=x; x=y; y=temp; } //引用数据类型 public static void swap(int[]arr,int x,int y){ int temp=arr[x]; arr[x]=arr[y]; ayy[y]=temp; } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3